package com.yinxin.wudasuanfa.huaweiod;

import java.util.*;

/**
 * @author yinxin
 * @version 1.0
 * @Description: 第一题求数组中符合a=b+2c等式的成员
 * 第二题输入一个范围，求其中的勾股元数组
 * 第三题哥哥弟弟分糖果，弟弟计算糖果重量之和按照二进制相加不进位来计算，弟弟要求两人重量相同，求满足弟弟要求下哥哥分的最大重量，不存在解输出-1
 * @date 2022/5/1016:03
 */
public class Exercise9 {
    public static void main(String[] args) {
        //test1();
        //test2();
        //test3();
        System.out.println(12^5);
    }

    // 第一题
    public static void test1() {
        int[] arr = {1, 3, 4, 5, 10, 15, 23, 25, 2931};
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < arr.length; i++) {
            for (int j = i; j < arr.length; j++) {
                for (int k = 0; k < arr.length; k++) {
                    if (arr[i] + 2 * arr[j] == arr[k] || arr[j] + 2 * arr[i] == arr[k] || arr[k] + 2 * arr[j] == arr[i] || arr[j] + 2 * arr[k] == arr[i]) {
                        set.add(arr[i]);
                        set.add(arr[j]);
                        set.add(arr[k]);
                    }
                }
            }
        }
        System.out.println(set);
    }

    //第二题
    public static void test2() {
        long start = System.currentTimeMillis();
        int[] range = {1, 10000};
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = range[0]; i <= range[1]; i++) {
            map.put(i * i, i);
        }
        LinkedList<int[]> list = new LinkedList<>();
        for (int i = range[0]; i <=range[1]; i++) {
            for (int j = i; j <= range[1]; j++) {
                if (map.containsKey(i * i + j * j)) {
                    int[] tmp = {i, j, map.get(i * i + j * j)};
                    list.add(tmp);
                }
            }
        }
        System.out.println(System.currentTimeMillis()-start);
        for (int[] ints : list) {
            System.out.println(Arrays.toString(ints));
        }
    }

    //第三题
    public static void test3(){
        int[] candys = new int[]{1, 3, 4, 5, 10, 15, 23, 25, 29};
        int max=0;
    }

}
